/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.thongtinsv.controller;

import com.thongtinsv.entity.Sinhvien;
import com.thongtinsv.model.SinhVienModel;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

/**
 *
 * @author tritruong
 */
@Controller
@RequestMapping(value = "sinhvien")
public class SinhVienController {
	@RequestMapping(value = "danhsach")
	public ModelAndView actionXemDanhSach() {
		ModelAndView m = new ModelAndView("sinhvien/danhsachsv");
		List<Sinhvien> lstSinhVien = SinhVienModel.getDanhSachSinhVien();
		m.addObject("lstSinhVien", lstSinhVien);
		return m;
	}
	
	@RequestMapping(value = "thongtin")
	public ModelAndView actionXemThongTinCaNhan(HttpSession session) {
		ModelAndView m = new ModelAndView("redirect");
		
		if (session.getAttribute("maSinhVien") == null) {
			m.addObject("url", "/");
			return m;
		}
		
		// TODO Tri Truong - 2013/12/22 : put average point into Sinhvien.java
		m = new ModelAndView("sinhvien/thongtincanhan");
		Sinhvien sinhVien = SinhVienModel.getSinhVien(session.getAttribute("maSinhVien").toString());
		m.addObject("sinhVien", sinhVien);

		return m;
	}
	
	@RequestMapping(value = "dangnhap", method = RequestMethod.GET)
	public ModelAndView actionDangNhap(@RequestParam String maSinhVien, 
			@RequestParam String matKhau, HttpSession session) {
		ModelAndView m = new ModelAndView("thongbao");

		boolean daDangNhap = SinhVienModel.dangNhap(maSinhVien, matKhau);
		
		if (daDangNhap == false) {
			m.addObject("strThongBao", "Thông tin đăng nhập của bạn không đúng");
			return m;
		}
		
		session.setAttribute("maSinhVien", maSinhVien);
		m = new ModelAndView("redirect");
		m.addObject("url", "/");

		return m;
	}
	
	@RequestMapping(value = "dangxuat")
	public ModelAndView actionDangXuat(HttpSession session) {
		session.setAttribute("maSinhVien", null);
		ModelAndView m = new ModelAndView("redirect");
		m.addObject("url", "/");

		return m;
	}
	
	@RequestMapping(value = "timkiem")
	public ModelAndView actionTimKiem(@RequestParam String giaTri) {
		ModelAndView m = new ModelAndView("sinhvien/danhsachsv");
		List<Sinhvien> lstSinhVien = SinhVienModel.getDanhSachSinhVien(giaTri);
		m.addObject("lstSinhVien", lstSinhVien);
		return m;
	}
	
	@RequestMapping(value = "doimatkhau")
	public ModelAndView actionDoiMatKhau(@RequestParam String txtMatKhau, HttpSession session) {
		ModelAndView m = new ModelAndView("thongbao");
		Object maSinhVien = session.getAttribute("maSinhVien");
		
		boolean ketQuaDoiMK = SinhVienModel.doiMatKhau(maSinhVien.toString(), txtMatKhau);
		if (ketQuaDoiMK == false) {
			m.addObject("strThongBao", "Bạn không có quyền đổi mật khẩu vì chưa đăng nhập");
			return m;
		}
		
		m.addObject("strThongBao", "Đổi mật khẩu thành công. "
				+ "Mật khẩu hiện tại của bạn là \""
				+ SinhVienModel.getSinhVien(maSinhVien.toString()).getMatKhau().toString()
				+ "\"");
		
		return m;
	}
}
